home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / list / RCS / List_Remove.c,v < prev    next >
Text File  |  1990-11-27  |  3KB  |  136 lines

  1. head     1.4;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.4
  10. date     90.11.27.11.06.34;  author ouster;  state Exp;
  11. branches ;
  12. next     1.3;
  13.  
  14. 1.3
  15. date     90.09.11.14.25.09;  author kupfer;  state Exp;
  16. branches ;
  17. next     1.2;
  18.  
  19. 1.2
  20. date     90.04.12.11.56.28;  author douglis;  state Exp;
  21. branches ;
  22. next     1.1;
  23.  
  24. 1.1
  25. date     88.06.20.09.27.29;  author ouster;  state Exp;
  26. branches ;
  27. next     ;
  28.  
  29.  
  30. desc
  31. @@
  32.  
  33.  
  34. 1.4
  35. log
  36. @Eliminated inclusion of <sys.h> (didn't work for user programs
  37. anyway), add explicit declaration for panic.
  38. @
  39. text
  40. @/* 
  41.  * List_Remove.c --
  42.  *
  43.  *    Source code for the List_Remove library procedure.
  44.  *
  45.  * Copyright 1988 Regents of the University of California
  46.  * Permission to use, copy, modify, and distribute this
  47.  * software and its documentation for any purpose and without
  48.  * fee is hereby granted, provided that the above copyright
  49.  * notice appear in all copies.  The University of California
  50.  * makes no representations about the suitability of this
  51.  * software for any purpose.  It is provided "as is" without
  52.  * express or implied warranty.
  53.  */
  54.  
  55. #ifndef lint
  56. static char rcsid[] = "$Header: /sprite/src/lib/c/list/RCS/List_Remove.c,v 1.3 90/09/11 14:25:09 kupfer Exp Locker: ouster $ SPRITE (Berkeley)";
  57. #endif not lint
  58.  
  59. #include <stdio.h>
  60. #include "list.h"
  61.  
  62. extern void panic();
  63.  
  64. /*
  65.  * ----------------------------------------------------------------------------
  66.  *
  67.  * List_Remove --
  68.  *
  69.  *    Remove a list element from the list in which it is contained.
  70.  *
  71.  * Results:
  72.  *    None.
  73.  *
  74.  * Side effects:
  75.  *    The given structure is removed from its containing list.
  76.  *
  77.  * ----------------------------------------------------------------------------
  78.  */
  79. void
  80. List_Remove(itemPtr)
  81.     register    List_Links *itemPtr;    /* list element to remove */
  82. {
  83.     if (itemPtr == (List_Links *) NIL || !itemPtr ||
  84.     itemPtr == itemPtr->nextPtr) {
  85.     panic("List_Remove: invalid item to remove.\n");
  86.     }
  87.     if (itemPtr->prevPtr->nextPtr != itemPtr ||
  88.     itemPtr->nextPtr->prevPtr != itemPtr) {
  89.     panic("List_Remove: item's pointers are invalid.\n");
  90.     }
  91.     itemPtr->prevPtr->nextPtr = itemPtr->nextPtr;
  92.     itemPtr->nextPtr->prevPtr = itemPtr->prevPtr;
  93. }
  94. @
  95.  
  96.  
  97. 1.3
  98. log
  99. @Lint.
  100. @
  101. text
  102. @d17 1
  103. a17 1
  104. static char rcsid[] = "$Header: /sprite/src/lib/c/list/RCS/List_Remove.c,v 1.2 90/04/12 11:56:28 douglis Exp Locker: kupfer $ SPRITE (Berkeley)";
  105. a20 1
  106. #include <sys.h>
  107. d22 2
  108. @
  109.  
  110.  
  111. 1.2
  112. log
  113. @check for itemPtr==0 before dereferencing it rather than after.
  114. @
  115. text
  116. @d17 1
  117. a17 1
  118. static char rcsid[] = "$Header: /sprite/src/lib/c/list/RCS/List_Remove.c,v 1.1 88/06/20 09:27:29 ouster Exp Locker: douglis $ SPRITE (Berkeley)";
  119. d21 1
  120. @
  121.  
  122.  
  123. 1.1
  124. log
  125. @Initial revision
  126. @
  127. text
  128. @d17 1
  129. a17 1
  130. static char rcsid[] = "$Header: proto.c,v 1.2 88/03/11 08:39:08 ouster Exp $ SPRITE (Berkeley)";
  131. d42 2
  132. a43 2
  133.     if (itemPtr == (List_Links *) NIL || itemPtr == itemPtr->nextPtr
  134.         || !itemPtr) {
  135. @
  136.